home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / PLUS4 / plus4disk1.d64 / ch2.07 pie < prev    next >
Text File  |  2009-01-03  |  8KB  |  81 lines

  1. Ç*NB"1:CH2.07  PIE"
  2. Ç*SP0:LM8:RM62:PP66:PG59
  3. Ç*VP3:HL8:HR72:HD0:├16/+4: ╨╔┼ ├╚┴╥╘     ÇúÇúÇúÇúÇúÇúÇúÇúÇúÇúÇúÇúÇúÇú,,╙ECTION XX
  4. Ç*HS2:------------------------------------,,----------
  5. Ç*FT0:-----------------------,,----------
  6. Ç*FS3:(C) 1984 ┼LIZABETH ─EAL,,         Ç#
  7. ╙ECTION
  8. Ç*LN2:CN1;╨╔┼ ├╚┴╥╘Ç*LN2:CN0
  9.      ╨IE CHARTS ARE USEFUL GRAPHIC ILLUSTRATIONS. ╘HEY CAN SHOW A BREAKDOWN OF A TOTAL QUANTITY OF SOMETHING INTO ITS COMPONENTS. ╞OR INSTANCE, IF WE TAKE POPULATION FIGURES IN EACH COUNTRY IN ┼UROPE, ADD THEM UP TO GET A TOTAL AND THEN CALCULATE THE PERCENT OF THAT COUNTRY'S TOTAL POPULATION, THE RESULTING PERCENTAGES CAN BE ILLUSTRATED GRAPHICALLY.
  10.  
  11.      ╘HE PERCENT FIGURE CAN BE REPRESENTED BY SPLITTING A CIRCLE INTO PIE-SHAPE PIECES. ╘HE SIZE OF EACH PIECE DEPENDS ON THE PROPORTION OF SOME CATEGORY TO A TOTAL, AS SHOWN IN THIS, NOT QUITE ROUND, EXAMPLE:
  12.      
  13. // PIXPIC: 1PIECH //
  14.      
  15.      ╘HE FOLLOWING PROGRAM PLOTS A PIE CHART (AS ABOVE) OF A SIMPLIFIED INVENTORY IN A ZOO OR ON THE FARM. ╔T READS THE INVENTORY FROM THE ─┴╘┴ LINES. ╔T ADDS UP THE COUNTS, TAKES THE PROPORTIONS AND SPLITS A CIRCLE INTO PIECES FOR EACH ANIMAL. ╘HE CHART ISN'T LABELLED, OTHER THAN WITH A MARKER OVER THE FIRST ENTRY. ╔T'S A CLOCKWISE ROUTE FROM THERE. ╘HE LIST OF ANIMALS IS PUT NEXT TO THE PIE-CHART, AND A TOTAL IS INCLUDED. ╘HE LIMIT IS 19 ENTRIES ON A SPLIT SCREEN.
  16.      
  17. // PRG: PIE CHART //
  18.  
  19. Ç*FP17
  20. ***  ╓┴╥╔┴┬╠┼╙  ***
  21.  
  22. ╥  SIZE OF THE CIRCLE
  23. ╪,┘  CENTER OF THE CIRCLE
  24. ├╪ CORRECTION FOR ╘╓
  25. ╥╔ A RADIAN FOR ╙╔╬ FUNCTION
  26. ╥╥ CORRECTED RADIUS
  27. ├╥ CORRECTED LENGTH OF PIE LINES
  28. ╦  COUNTS ENTRIES (MAX 19)
  29. ╬$ NAME OF CATEGORY
  30. ┴  VALUE OF STRING ┴$ READ IN (AMOUNT)
  31.    ┴ IS REUSED IN THE SECOND HALF TO HOLD
  32.    ANGLE CORRESPONDING TO PERCENT
  33. ╘  SUM OF ALL ┴'S READ IN
  34. ╓  VALUE TO PRINT (SAME AS ┴)
  35. ╫  WIDTH OF A NUMBER TO PRINT
  36.  
  37. Ç*FP3
  38. ***  ╔╬╙╘╥╒├╘╔╧╬╙  ***
  39.  
  40.      ╘YPE IT IN, WATCH THE SEMICOLONS AND MANY PARENTHESIS AROUND SOME ARITHMETIC EXPRESSIONS, THEN ╥╒╬ IT. ╘HE PROGRAM STOPS BY ITSELF. ┘OU CAN THEN ╠╔╙╘ ALL OF IT, OR JUST THE ─┴╘┴ LINES (╠╔╙╘ OR ╠╔╙╘ 260-), CHANGE THE ─┴╘┴ LINES AND ╥╒╬ AGAIN AND AGAIN.
  41.  
  42. ***  ╙╒══┴╥┘ ╧╞ ─┼╘┴╔╠╙  ***
  43.  
  44.      ╘HE PROGRAM LOGIC IS THIS: WE READ ─┴╘┴ LINES UNTIL WE HIT ┌┌┌. ╘HEY ARE ADDED UP AND PRINTED ON THE LEFT SIDE OF THE SCREEN. ┴LL THAT IS IN LINES 140-190. ╠INES 200-240 CALCULATE THE PERCENTAGES AND PLOT THE PIE DIVISIONS ON THE SPOT. ╙INCE THERE ARE SEVERAL POINTS OF INTEREST IN THIS PROGRAM, THE USUAL ─┼╘┴╔╠╙ SECTION HAS NOW BEEN SUBDIVIDED INTO RESPECTIVE HEADINGS. ╫E ARE DOING MORE COMPLICATED THINGS, THE TASK-DIVISION OUGHT TO BE CLEARER.
  45.  
  46. ***  ├╔╥├╠┼ ─╥┴╫╔╬╟  ***
  47.  
  48.      ╘HE CIRCLE IS PLOTTED IN LINE 130. ╘HE RADIUS NEEDS A CORRECTION SINCE OTHERWISE A CIRCLE WOULDN'T LOOK RIGHT. ╘HE CORRECTION IS IN VARIABLE ├╪. ╔T MADE THE CIRCLE REALLY ROUND ... ON THE SCREEN. ┬UT THEN IT DID NOT COME OUT TOO ROUND ON PAPER. ╘HIS IS A GOOD ILLUSTRATION OF THE NEED FOR THAT VARIABLE ├╪. ┘OU CAN ADJUST IT TO WHATEVER VALUES FIT, BY TRIAL AND ERROR. ╘HERE SEEMS TO BE NO RHYME OR REASON TO THE SCREEN AND PRINTER PROPORTIONS.
  49.  
  50.      ╘HE CIRCLE IS CUT INTO PIECES USING THE ─╥┴╫ COMMAND. ╘HIS PERMITS US TO DRAW A LINE OF A CERTAIN LENGTH, AT A CERTAIN ANGLE. ╘HIS IS A NATURAL THING TO DO, SINCE THE ANGLE EXPRESSES THE PROPORTION OF ELEPHANTS IN YOUR INVENTORY RELATIVE TO THE WHOLE INVENTORY (OR ANGLE OF 360 DEGREES WHICH IS A CIRCLE). ╘HIS FORM OF THE ─╥┴╫ COMMAND ISN'T ALWAYS DOCUMENTED. ╘HE MEANING IS ─╥┴╫ <COLOR SOURCE> ╘╧ <LENGTH OF LINE> ; <AT ANGLE>.  ╘HE ANGLES OF ZERO AND 360 ARE THE SAME THING, DUE ╬ORTH. ┴NGLE SIZE INCREASES IN THE CLOCKWISE DIRECTION.
  51.  
  52.      ─UE TO THE SCREEN NOT BEING QUITE ROUND OR SQUARE OR WHATEVER, THE LENGTH OF THE LINE NEEDS ADJUSTMENT. ╘HAT'S WHAT ALL THIS FANCY LOOKING MATH IN LINE 230 IS ABOUT. ╘HE POINT IS THAT WE NEED NO CORRECTION WHEN THE LINE IS UP OR DOWN. ╫E NEED A LARGEST CORRECTION WHEN THE LINE IS HORIZONTAL. ╘HE ╙╔╬(ANGLE) FUNCTION DOES JUST THAT FOR US. ╔NCIDENTALLY, THE LINES ARE DRAWN RELATIVE TO ANGLE ┴, BUT THE ╙╔╬ FUNCTION IS COMPUTED TAKING THE SAME ANGLE IN RADIANS. ╘HAT'S THE ╥╔ YOU SEE IN LINE 120 AND IN THE ╙╔╬ FORMULA.
  53.  
  54. ***  ├╧╨╔╬╟ ╫╔╘╚ ╘╚┼ ╓┴╠╒┼╙  ***
  55.  
  56.      ╘HE VALUES ARE READ AND TOTALLED IMMEDIATELY INTO VARIABLE ╘ (LINES 140-150). ╘HE COUNT OF CATEGORIES IS THE SAME AS THE NUMBER OF VALUES, IT GOES INTO VARIABLE ╦. ╘HE INDIVIDUAL COUNTS ARE TAKEN AS A PROPORTION OF THE TOTAL ╘. ╓/╘*360 CONVERTS THE PROPORTION TO AN ANGLE IN DEGREES.
  57.  
  58.      ╘HE VALUES COULD HAVE BEEN PUT INTO AN ARRAY, A TABLE OF VALUES. ╔NSTEAD, WE GO OVER THE DATA TWICE, USING A ╥┼╙╘╧╥┼ COMMAND. ╘HIS, OF COURSE, WOULDN'T WORK WITH AN EXTERNAL FILE. ┘OU CAN TRY BUILDING A TABLE OF VALUES, SO A SECOND PASS WOULD NOT BE NECESSARY.
  59.  
  60.      ├╚┴╥ IS USED TO PRINT VALUES ON A GRAPHIC SCREEN. ╨╥╔╬╘ ╒╙╔╬╟ CANNOT BE USED HERE, SO WE FORMAT THE NUMBERS USING SOME STRING MANIPULATIONS IN A SUBROUTINE IN LINE 250. ╔F WE DIDN'T DO IT, THE DISPLAY WOULD LOOK LIKE A MESS. ╚ERE WE TAKE A NUMBER AND PAD IT ON THE LEFT WITH BLANKS. ╫E THEN TAKE THE RIGHTMOST DIGITS TO PRINT. ╫E EXCLUDE THE FIRST DIGIT, SINCE WE KNOW THAT COUNTS CANNOT BE NEGATIVE.
  61.  
  62. ***  ╨╥╧╩┼├╘╙  ***
  63.  
  64.      ╔S THIS PROGRAM LIMITED TO CATS AND CHICKENS? ╧F COURSE NOT. ╨LUG IN YOUR OWN DATA IN PAIRS: NAME, COUNT, NAME, COUNT, JUST AS YOU SEE IT IN THE LISTING. ═AKE SURE THAT THE LAST ITEM IS ┌┌┌, WHICH TELLS THE COMPUTER "NO MORE DATA".
  65.  
  66.      ╔F YOU ALREADY HAVE SOME INFORMATION IN ANOTHER PROGRAM OR ON A TAPE OR DISK FILE, YOU CAN USE THAT, TOO. ┘OUR DATA MIGHT HAVE MORE ITEMS THAN THE TWO THIS PROGRAM CARES ABOUT (NAME, COUNT). ╘HAT'S ALL RIGHT. ╠ET THIS PROGRAM PICK UP ONLY THAT WHICH IT NEEDS. ╔NCIDENTALLY, THERE IS A SECTION IN THE BOOK ABOUT HOLDING INFORMATION ON FILE.
  67.  
  68.      ╔NTERESTING THINGS CAN BE DONE WITH PIE-CHARTS. ╙OMETIMES THERE ARE TOO MANY ITEMS TO CHART. ╘HE LINES BECOME TOO CROWDED AND DIFFICULT TO READ. ┘OU COULD GROUP THE ITEMS DIFFERENTLY AND SHOW A WHOLE, SEPARATE, PIECE OF A PIE JUST FOR THAT GROUP, FOLLOWING THE SAME PROCEDURE AS ABOVE.
  69.  
  70.      ┴NOTHER NEAT THING THAT CAN BE DONE ON THIS COMPUTER IS COLORING EACH AREA. ╘HIS REQUIRES DRAWING IN THE MULTICOLOR MODE. ╙EVERAL HINTS: DIVIDE EVERY ╪-COORDINATE BY 2, USE COLORS CAREFULLY SO ONE DOES NOT UPSET ITS NEIGHBOR - YOU CAN HAVE 4 COLORS (THREE PLUS SCREEN COLOR) IN EACH 8X8 CELL.
  71.  
  72.      ┘OU COULD TAKE A SHOT AT LABELLING EVERY ENTRY IN THE CHART. ╔T CAN BE DONE, BUT MAY REQUIRE SOME TRICKS ON YOUR PART. ╘HE ├╚┴╥ COMMAND IS CAPABLE OF PRINTING AT ANY ╪,┘ COORDINATE THAT IS A MULTILPE OF EIGHT. ╘HAT'S NOT GOOD ENOUGH WHEN A CIRCLE IS INVOLVED. ╚INT: READ UP ABOUT THE ╙╙╚┴╨┼ AND ╟╙╚┴╨┼ COMMANDS.
  73.  
  74.      ╘HE KEYWORDS IN THE MANUAL THAT ARE RELATED TO GRAPHING ARE: ─╥┴╫, ╠╧├┴╘┼, ╥├╧╠, ╥─╧╘, ╟╥┴╨╚╔├, ├╧╠╧╥,AND ╙├┴╠┼. ─╥┴╫ COMMAND HAS A LOT OF DIFFERENT AND USEFUL SYNTAXES. ╔T'S WORTH PLAYING WITH.
  75.  
  76. ***  ╒╙╔╬╟ ─┴╘┴ ╠╔╬┼╙  ***
  77.  
  78.      ─┴╘┴ LINES ARE CONVENIENT FOR DOCUMENTING AND FIXING A PROGRAM. ╙OME TEST DATA CAN ALWAYS LIVE TOGETHER WITH A PROGRAM FOR TESTING AND AS AN EASY WAY TO RECALL WHAT THE PROGRAM IS SUPPOSED TO DO. ╧NE OFTEN FORGET HOW TO USE OUR OWN PROGRAMS, AND IT IS EASIER TO JUGGLE THE MEMORY WITH A COMPLETE RUN, INSTEAD OF HAVING TO DECODE THE PROGRAM. ╙INCE SOME ─┴╘┴ IS PART OF A PROGRAM, A RE╥╒╬ SHOULD MAKE THE PROGRAM SELF-EXPLANATORY.
  79.  
  80.      ╞USSY PEOPLE MAY TELL YOU THAT YOUR CODE SHOULD BE SO WELL DOCUMENTED, THAT JUST BY LOOKING AT IT YOU SHOULD KNOW EXACTLY WHAT IT DOES AND HOW TO USE IT. ╘RUE, BUT IMPRACTICAL. ╔F YOU DOCUMENTED EVERY IMPORTANT FEATURE, THE DOCUMENTATION WOULD TAKE TWENTY SHEETS OF PAPER. ╫HO'D WANT TO READ THAT WHEN YOU'RE TRYING TO HAVE FUN?
  81.